<?php
/**
 * Member registration form
 *
 * @see sfGuardUserForm
 */
class alikaRegisterForm extends BasesfGuardUserForm
{
  /**
   * Form configuration
   *
   */
  public function configure()
  {

    //$f = new sfWidgetFormDateRange();
  	
  	  	unset( 
  		$this['nickname'],  
  		$this['salt'],
  		$this['algorithm']);  
  			
  	
    $languages = array('en', 'ru');
  	
    $this->setWidgets(array(
      'username'  => new sfWidgetFormInput(),
      'email'     => new sfWidgetFormInput(),
      'password'  => new sfWidgetFormInputPassword(),
      'password2' => new sfWidgetFormInputPassword(),
     

    ));

    

    
    	
		 
    
    
    
    
    	 
		 
    
    
	/////Пол
	
		   	  $this->widgetSchema['gender'] =  new sfWidgetFormInputHidden(array(),array('value' =>'m'));
		   
		   
		   $this->widgetSchema->moveField('gender', 'after', 'password2');
		 
    ///////////	 	

		 
	/////Страна
		 if(sfConfig::get('app_form_reg_country')==true)
		 {
		   $this->widgetSchema['country'] =  new sfWidgetFormI18nSelectCountry(array('culture' =>sfContext::getInstance()->getUser()->getCulture()));
		   $this->widgetSchema->moveField('country', 'after', 'password2');
		 }
    ///////////	 
    
	

		 $this->widgetSchema['captcha'] =new sfWidgetFormPHPCaptcha();
		 
      	/////Условия пользования сайтом
		 if(sfConfig::get('app_form_reg_confirm')==true)
		 {
		   $this->widgetSchema['confirm'] = new sfWidgetFormInputCheckboxConfirm();
		   $this->widgetSchema->moveField('confirm', 'before', 'captcha');
		  
		 }
		 

    		 $ss = 'Согласна';
    	
    
    $this->widgetSchema->setLabels(
    array(
      'username'  => __('Name'),
      'email'     => __('E-mail'),
      'password'  => __('Пароль'),
      'country' => __('Страна'),
       'captcha' => __('Защитный код'),
      'gender' => __('Пол'),
      'birthday' => __('Дата рождения'),
      'language' => __('Родной язык'),
      'confirm' => __($ss),
      'password2' => __('Повтор пароля')
    )
    ); 
    
    // helps
    $this->widgetSchema->setHelps(array(
      'username'  => 'Логин должен состоять из символов латинского алфавита.',
      'email'     => 'Информация является конфиденциальной.',
      'password'  => 'Пароль должен состоять минимум из 6 символов.',
      'password2' => 'Повторите пароль.',
    ));

    // validators
    
    if(sfConfig::get('app_use_id_login')!=true)
    {
    	$this->validatorSchema ['username'] =  new sfValidatorAnd(array(
        new sfValidatorString(array('min_length' => 3, 'max_length' => 20),array('min_length'=>'минимум 3 символа','min_length'=>'максимум 20 символов','required'=>'поле обязательно')),
        new sfValidatorRegex(array('pattern' => '/^[a-zA-Z]([a-zA-Z0-9._-]+)$/'), array('invalid' => 'логин "%value%" содержит запрещенные символы','required'=>'поле обязательно')),
        
      ));
    }
    else 
    {
    	$this->validatorSchema ['username'] = 
        new sfValidatorString(array('min_length' => 3, 'max_length' => 20),array('min_length'=>'минимум 3 символа','min_length'=>'максимум 20 символов','required'=>'поле обязательно'));
    }
    
    
    $this->validatorSchema ['captcha'] = new sfValidatorPHPCaptcha(array(),array('required'=>'поле обязательно','invalid'=>'код введен не верно')); 
    $this->validatorSchema ['email'] = new sfValidatorAnd(array(
						        new sfValidatorString(array('max_length' => 100),array('required'=>'поле обязательно')),
        						new sfValidatorEmail(array(), array('invalid' => 'email адрес введен не верно','required'=>'поле обязательно'))));
    $this->validatorSchema ['password'] = new sfValidatorString(array('min_length' => 6, 'max_length' => 128),array('min_length'=>'минимум 6 символов','required'=>'поле обязательно'));
    $this->validatorSchema ['password2'] = new sfValidatorString(array('min_length' => 6, 'max_length' => 128),array('min_length'=>'минимум 6 символов','required'=>'поле обязательно'));
    
    
    // post validator
    $this->validatorSchema->setPostValidator(new sfValidatorAnd(array(
      new sfValidatorSchemaCompare('password', sfValidatorSchemaCompare::EQUAL, 'password2'),
      new sfValidatorPropelUnique(array('model'  => 'sfGuardUser', 'column' => 'username'))
     
    )));

    $this->widgetSchema->setNameFormat('user[%s]');
    $this->validatorSchema->setOption ( 'allow_extra_fields', true );
    
         if(sfConfig::get('app_form_reg_confirm')==true)
		 {
          $this->validatorSchema['confirm'] = new sfValidatorString(array('required' => true),array('required'=>'согласие обязательно'));
		 }
  }

  /**
   * Adds a captcha to current form, if enabled by configuration
   *
   */
  public function addCaptcha()
  {
    //if (true === sfConfig::get('app_recaptcha_enabled'))
   // {
      $this->widgetSchema['captcha']    = new sfWidgetFormReCaptcha(array('public_key' => '6Lez-gQAAAAAAIW1vpGYXaUMRdUrgmqjD_DDIy6r'));
      $this->validatorSchema['captcha'] = new sfValidatorReCaptcha(array('private_key' => '6Lez-gQAAAAAAHQTZ4-pFxvbd353HjgcwDdTF73W'));
      $this->widgetSchema->setHelp('captcha', 'Код защиты от ботов');
    //}
    
      
  }
  
  
  
}